# 导入必要的库
#  pip install websockets
#  python src/websocket/datav.py
import asyncio  # 用于支持异步IO操作
import websockets  # WebSocket协议的实现库
import json  # 用于JSON数据的编码和解码

# 创建一个集合(set)用来存储所有连接的WebSocket客户端
# 使用set是因为它能确保每个客户端只存储一次，且支持快速的添加和删除操作
connected_clients = set()

async def handle_message(websocket):
    """
    处理单个WebSocket连接的主要函数
    参数 websocket: WebSocket连接对象，代表与客户端的连接
    """
    data = [
        [5, 20, 36, 10, 10, 20],
        [5, 20, 36, 10, 10, 20]
    ]  # 添加了缺失的右括号 ]

    # 向新连接的客户端发送欢迎消息
    await websocket.send(json.dumps(data, ensure_ascii=False))  # ensure_ascii=False允许中文字符正常显示
    
    
async def main():
    """
    服务器的主入口函数，负责启动WebSocket服务器
    """
    # 启动WebSocket服务器
    # localhost: 服务器地址，只允许本机连接
    # 8765: 服务器端口号
    async with websockets.serve(handle_message, "localhost", 8765):
        print("WebSocket server started on ws://localhost:8765")  # 打印服务器启动信息
        await asyncio.Future()  # 保持服务器运行，直到被手动终止

# 程序入口点
if __name__ == "__main__":
    # 启动异步事件循环，运行main()函数
    asyncio.run(main())